import webUtils from '../config/index'

// 计算main高度
const mainHeight = ()=> {
    let height = window.innerHeight;
    const layoutType = webUtils.menuMode; // 获取菜单类型
    const showFooter = webUtils.showFooter; // 是否显示底部容器

    if(layoutType === 'horizontal'){ // 顶部菜单
        height = height - 70; // 70 顶部菜单高度
        if(showFooter){
            height = height - 70 - 30 // 70 顶部菜单高度 30 底部容器高度
        }
    }else {
        height = height - 70; // 70 顶部菜单高度
        if(showFooter){
            height = height - 70 - 30 // 70 顶部菜单高度 30 底部容器高度
        }
    }

    return height
};

// 计算表格高度
const tableHeight = ()=>{
    let height = mainHeight();
    const layoutType = webUtils.menuMode; // 获取菜单类型
    if(layoutType === 'horizontal'){
        height = height - 40 - 70 - 60 - 80; // 40 main边框间隔上下各20  70 标题的高度为60 底部间隔为10  60 搜索栏高度50 间隔为10  80 分页高度加间隔
    }else {
        height = height  - 50 - 60 - 80;
    }
    return height
};

/**
 * 替换文本内容
 * @param val 初始文本
 * @param position 替换开始位置
 * @param digit 替换的个数
 * @param newVal 替换的内容
 */
const textReplacement = (val,position,digit,newVal)=>{
    let text = '';
    for(let i =0;i<digit;i++){
        text += newVal;
    }
    const content = val.substr(0,position) + text + val.substr((position+digit),val.split('').length-1);
    return content
};

/**
 * 时间转换
 * @param date 时间戳
 * @param fmt 转换的的格式 （YYYY-MM-dd hh:mm:ss）
 * @returns {*}
 */
const forMateDate = (date, fmt)=> {
    date = new Date(Number(date));
    if (/(Y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
    }
    let o = {
        'M+': date.getMonth() + 1,
        'd+': date.getDate(),
        'h+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds()
    };

    for (let k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
            let str = o[k] + ''
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str))
        }
    }
    return fmt
};


const padLeftZero =(str)=> {
    return ('00' + str).substr(str.length)
};










export default {
    mainHeight,
    tableHeight,
    textReplacement,
    forMateDate
}